package com.java.day11;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Consumer;
import java.util.function.Predicate;

public class CollectionDemo {
    public static void main(String[] args) {
        Collection<Integer> c1 = new ArrayList<>();


        System.out.println(c1);

        boolean add = c1.add(9);
        System.out.println(c1.add(10));
        System.out.println(c1.add(11));
        System.out.println(c1.add(12));

        System.out.println(c1);
        System.out.println(add);

        Collection<Integer> c2 = new ArrayList<>();
        c2.add(13);
        c2.add(14);

        c1.addAll(c2);
        System.out.println(c1);
        c2.addAll(c1);
        System.out.println(c2);

        //删除大于6的元素
        //使用箭头函数
        System.out.println(c1.removeIf(e -> e > 6));
        //使用匿名内部类
//        System.out.println(c1.removeIf(new Predicate<Integer>() {
//            @Override
//            public boolean test(Integer integer) {
//                return integer>6;
//            }
//        }));

        System.out.println(c1);


        //如何遍历集合
        //增强for循环
//        for (Integer a : c2) {
//            System.out.println(a);
//        }

        //forEach
//        c2.forEach(c-> System.out.println(c));

        //使用匿名内部类
//        c2.forEach(new Consumer<Integer>() {
//            @Override
//            public void accept(Integer integer) {
//                System.out.println(integer);
//            }
//        });


        //迭代器
        //使用iterator方法遍历集合
        Iterator<Integer> iterator = c2.iterator();


//        boolean b = iterator.hasNext();
//        System.out.println(b);
//
//        Integer next = iterator.next();
//        System.out.println(next);
        //如果迭代器中还有可以访问的元素
        while (iterator.hasNext()) {
            Integer next = iterator.next();
            System.out.println(next);
        }

    }
}
